import { PrismaClient } from '@prisma/client';

const prisma = new PrismaClient();

// async function createData() {
//   await prisma.user.create({
//     data: {
//       name: 'kk',
//       email: 'kk@xx.com',
//     },
//     select: {
//       email: true,
//     },
//   });
// }

// async function getData() {
//   const allUsers = await prisma.user.findMany({
//     where: {
//       email: {
//         contains: 'xx',
//       },
//     },
//     select: {
//       id: true,
//       email: true,
//     },
//     orderBy: {
//       name: 'desc',
//     },
//     skip: 2,
//     take: 3,
//   });
//   console.log(allUsers);

//   const uniqueUser = await prisma.user.findUnique({
//     where: {
//       id: 1,
//     },
//   });
//   console.log(uniqueUser);

//   const selectUser = await prisma.user.findUnique({
//     where: {
//       email: 'bbb@xx.com',
//     },
//     select: {
//       id: true,
//       email: true,
//     },
//   });
//   console.log(selectUser);

//   const findUserOrErr = await prisma.user.findUniqueOrThrow({
//     where: {
//       id: 10,
//     },
//   });
//   console.log(findUserOrErr);

//   const findUserFirst = await prisma.user.findFirst({
//     where: {
//       email: {
//         contains: '',
//         endsWith: '',
//         equals: '',
//         gt: '',
//         gte: '',
//         in: [''],
//         lt: '',
//         lte: '',
//         not: '',
//         notIn: [''],
//         startsWith: '',
//       },
//     },
//     select: {
//       id: true,
//       email: true,
//     },
//     orderBy: {
//       name: 'desc',
//     },
//     skip: 2,
//     take: 3,
//   });
//   console.log(findUserFirst);
// }

// async function updateData() {
//   await prisma.post.update({
//     where: { id: 3 },
//     data: { id: 3 },
//     select: {
//       id: true,
//     },
//   });
//   await prisma.post.updateMany({
//     where: {
//       id: {
//         lt: 1,
//       },
//     },
//     data: { id: 1 },
//   });
// }

// async function deleteData() {
//   await prisma.post.delete({
//     where: {
//       id: 2,
//     },
//   });

//   await prisma.post.deleteMany({
//     where: {
//       id: {
//         in: [11, 2],
//       },
//     },
//   });
// }

// async function updateOrCreate() {
//   const res = await prisma.user.upsert({
//     where: { id: 11 },
//     update: { email: 'yy@xx.com' },
//     create: {
//       id: 11,
//       name: 'xxx',
//       email: 'xxx@xx.com',
//     },
//   });
//   console.log(res);
// }

// async function getCount() {
//   const res = await prisma.user.count({
//     where: {
//       email: {
//         contains: 'xx',
//       },
//     },
//     orderBy: {
//       name: 'desc',
//     },
//     skip: 2,
//     take: 3,
//   });
//   console.log(res);
// }

// async function operateData() {
//   await createData();
//   await updateData();
//   await getData();
//   await deleteData();
//   await updateOrCreate();
//   await getCount();
// }

// operateData();
